/**
 * GoodsType 业务逻辑类
 * @author WangXinLei
 * @date 2015-01-07
 */
package com.chnbst.bstyun.service;

import java.util.List;
import java.util.Map;

import com.chnbst.bstyun.model.pojo.GoodsType;
import com.chnbst.bstyun.model.vo.GoodsTypeTreeVo;
import com.chnbst.bstyun.model.vo.GoodsTypeVo;

public interface GoodsTypeService {

	List<GoodsType> selectP();
	List<GoodsType> selectC(String pid);
	
	/**
	 * 查询类型树结构
	 * @param typeId 类型ID
	 * @return 返回list
	 */
	List<GoodsType> selectGoodsType();
	
	/**
	 * 查询类别总数
	 * @return 返回总数
	 */
	int selectCount(String typeId);
	
	/**
	 * 查询类型树结构
	 * @param typeId 类型ID
	 * @return 返回list
	 */
	List<GoodsTypeTreeVo> selectGoodsTypeGrid(Map<String, Object> map);

	/**
	 * 查询类型树结构
	 * @param typeId 类型ID
	 * @return 返回list
	 */
	List<GoodsTypeVo> selectGridByCondition(Map<String, Object> map);
	
	/**
	 * 查询 单条数据的信息
	 * @param typeId
	 * @return 商品类别信息
	 */
	GoodsTypeVo selectGoodsTypeVoInfo(String typeId);

	/**
	 * 新增商品类别数据
	 * @param 商品类别信息
	 * @return 添加成功返回true 失败返回false
	 */
	boolean insertGoodsType(GoodsType goodsType);
	
	/**
	 * 修改商品类别数据
	 * @param 商品类别信息
	 * @return 修改成功返回true 失败返回false
	 */
	boolean updateGoodsType(GoodsType goodsType);
	
	/**
	 * 检验商品分类编号是否存在
	 * @param goodsTypeNum
	 * @return 商品类别信息
	 */
	GoodsType changeGoodsTypeNum(String goodsTypeNum);
	
	/**
	 * 查询单条数据中的产品列表
	 * @param typeId 类型ID
	 * @return 返回list
	 */
	List<GoodsType> selectProductsByTypeId(String typeId);
	
	/**
	 * 删除商品类别数据
	 * @param 商品类别信息
	 * @return 添加成功返回true 失败返回false
	 */
	boolean deleteByTypeId(GoodsType goodsType);
	
}
